1. Field of the Invention
The present invention relates to a High Availability (HA) technology, and, more particularly, to ensuring High Availability of virtual execution environments (VEEs) in a cloud-based infrastructure.
2. Description of the Related Art
Cloud computing is currently the most common way for efficient and robust method for publishing web services and making them available to users. The cloud computing, advantageously, simplifies deployments of services and makes them more cost-effective and scalable. Depending on the need, a user can choose to use a public cloud or operate a private cloud. The private clouds do not share resources between enterprises, but are owned, used and operated by a single organization.
In the public cloud computing model a special cloud service provider is used by an organization (or an enterprise) to provide cloud services. This provider can share cloud resources between the enterprises, which greatly reduces maintenance costs. The public clouds make it quite easy to scale up and down in order to utilize only required computational units. However, High Availability (HA) of the cloud services is required. the cloud can have a large number of services that need to be always available. This raises an issue of High Availability, which is different compared to HA of a single computer or a server. In the cloud, failure of one node should not affect the functionality of the cloud and the cloud services that are provided.
If one cloud computer running a particular cloud service fails, the cloud service has to automatically launch another instance on another cloud computer. Conventional cloud systems do not have the HA and use manual launches of the failed service on available cloud computers. Typically, the cloud administrator re-launches the services manually, which creates significant delays.
Accordingly, it is desired to have a cloud service with an HA system, that insures minimal and predictable service delays. High availability is a key area of interest for the cloud computing clients. However, the cloud providers usually are responsible only for maintaining the cloud infrastructure and performing backups and restores, if necessary. So, the clients themselves have to set up high availability of the desired cloud services. Accordingly, it is also desired to have a simple HA solution implemented as a part of the cloud, so the clients do not have to worry about availability of the services.
An HA cloud solution has to monitor the services, restart them if necessary and also communicate to the network routing device the new locations of the services if they have changed (IP failover). Solutions for protecting the IT systems from failures are not new by any standard and they have already been implemented in some software products. However, they have disadvantages in being large and not compatible with many cloud solutions. The existing third-party HA systems need to be integrated into the cloud systems. As a result, the public cloud service clients or the maintainers of the private clouds have to complement the cloud solutions with a third-party HA software that may even exist outside of the cloud. This is not the most cost-effective solution or the easiest one to implement.
Accordingly, it is desired to have a cloud services system with its own integrated HA solution.